home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / Iwstdec.h < prev    next >
C/C++ Source or Header  |  2001-10-08  |  4KB  |  118 lines

  1. //------------------------------------------------------------------------------
  2. // File: iwstdec.h
  3. //
  4. // Desc: WST Decoder related definitions and interfaces for ActiveMovie
  5. //
  6. // Copyright (c) 1999-2001, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8. // 
  9.  
  10. #ifndef __IWSTDEC__
  11. #define __IWSTDEC__
  12.  
  13. //
  14. //  Some data types used as WST decoder parameters by the interface
  15. //
  16. typedef struct _AM_WST_PAGE {
  17.     DWORD    dwPageNr ;
  18.     DWORD    dwSubPageNr ;
  19.     BYTE    *pucPageData;
  20. } AM_WST_PAGE, *PAM_WST_PAGE ;
  21.  
  22. typedef enum _AM_WST_LEVEL {
  23.     AM_WST_LEVEL_1_5 = 0
  24. } AM_WST_LEVEL, *PAM_WST_LEVEL ;
  25.  
  26. typedef enum _AM_WST_SERVICE {
  27.     AM_WST_SERVICE_None = 0,
  28.     AM_WST_SERVICE_Text,
  29.     AM_WST_SERVICE_IDS,
  30.     AM_WST_SERVICE_Invalid
  31. } AM_WST_SERVICE, *PAM_WST_SERVICE ;
  32.  
  33. typedef enum _AM_WST_STATE {
  34.     AM_WST_STATE_Off = 0,
  35.     AM_WST_STATE_On
  36. } AM_WST_STATE, *PAM_WST_STATE ;
  37.  
  38. typedef enum _AM_WST_STYLE {
  39.     AM_WST_STYLE_None = 0,
  40.     AM_WST_STYLE_Invers
  41. } AM_WST_STYLE, *PAM_WST_STYLE ;
  42.  
  43. typedef enum _AM_WST_DRAWBGMODE {
  44.     AM_WST_DRAWBGMODE_Opaque,
  45.     AM_WST_DRAWBGMODE_Transparent
  46. } AM_WST_DRAWBGMODE, *PAM_WST_DRAWBGMODE ;
  47.  
  48.  
  49. #ifdef __cplusplus
  50. extern "C" {
  51. #endif // __cplusplus
  52.  
  53. //
  54. //  WST Decoder standard COM interface
  55. //
  56. DECLARE_INTERFACE_(IAMWstDecoder, IUnknown)
  57. {
  58.     public:
  59.         //
  60.         // Decoder options to be used by apps
  61.         //
  62.  
  63.         // What is the decoder's level
  64.         STDMETHOD(GetDecoderLevel)(THIS_ AM_WST_LEVEL *lpLevel) PURE ;  
  65.  
  66. //        STDMETHOD(SetDecoderLevel)(THIS_ AM_WST_LEVEL Level) PURE ;  
  67.  
  68.         // Which of the services is being currently used
  69.         STDMETHOD(GetCurrentService)(THIS_ AM_WST_SERVICE *lpService) PURE ;  
  70. //        STDMETHOD(SetCurrentService)(THIS_ AM_WST_SERVICE Service) PURE ;  
  71.  
  72.         // Query/Set the service state (On/Off)
  73.         // supported state values are AM_WSTState_On and AM_WSTState_Off
  74.         STDMETHOD(GetServiceState)(THIS_ AM_WST_STATE *lpState) PURE ;  
  75.         STDMETHOD(SetServiceState)(THIS_ AM_WST_STATE State) PURE ;  
  76.  
  77.         //
  78.         // Output options to be used by downstream filters
  79.         //
  80.  
  81.         // What size, bitdepth etc should the output video be
  82.         STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE ;
  83.         // GetOutputFormat() method, if successful, returns 
  84.         // 1.  S_FALSE if no output format has so far been defined by downstream filters
  85.         // 2.  S_OK if an output format has already been defined by downstream filters
  86.         STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE ;
  87.  
  88.         // Specify physical color to be used in colorkeying the background 
  89.         // for overlay mixing
  90.         STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE ;
  91.         STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE ;
  92.  
  93.         // Specify if whole output bitmap should be redrawn for each sample
  94.         STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE ;
  95.         STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE ;
  96.  
  97.         // Specify if the caption text background should be opaque/transparent
  98.         STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE *lpMode) PURE ;
  99.         STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE Mode) PURE ;
  100.         // supported mode values are AM_WST_DrawBGMode_Opaque and
  101.         // AM_WST_DrawBGMode_Transparent
  102.  
  103.         STDMETHOD(SetAnswerMode)(THIS_ BOOL bAnswer) PURE ;
  104.         STDMETHOD(GetAnswerMode)(THIS_ BOOL* pbAnswer) PURE ;
  105.  
  106.         STDMETHOD(SetHoldPage)(THIS_ BOOL bHoldPage) PURE ;
  107.         STDMETHOD(GetHoldPage)(THIS_ BOOL* pbHoldPage) PURE ;
  108.  
  109.         STDMETHOD(GetCurrentPage)(THIS_ PAM_WST_PAGE pWstPage) PURE;
  110.         STDMETHOD(SetCurrentPage)(THIS_ AM_WST_PAGE WstPage) PURE;
  111.  
  112. } ;
  113.  
  114. #ifdef __cplusplus
  115. }
  116. #endif // __cplusplus
  117. #endif // __IWSTDEC__
  118.